/*
 * @(#)FileUtil.java $version 2012-3-7
 * 
 * Copyright 2012 RogueDevelopment Gruop. All rights Reserved.
 * ROGUEDEVELOPMENT PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package com.nadostar.extensions;

import java.io.File;

/**
 * @author LEESUNG
 * 
 */
public class FileUtil {
	 public static void main(String args[]) {
	      // File 유형의 참조형 변수를 선언합니다. 지역 변수이므로 null 로 초기화합니다.
	      File f = null;
	      String path = "C:/workspace/www/web/data";
	      f = new File(path);
	      // FileList 객체를 생성합니다.
	      // recusrse() 메서드는 static 메서드가 아니므로 FileList의 객체를 생성한 후에 호출합니다.
	      FileUtil fd = new FileUtil();
	      fd.recurse(f, 0);
	   }
	   void recurse(File dirFile, int depth){
	      // 지정된 디렉토리에 존재하는 파일과 하위 디렉토리에 대한 명칭들을 String 형 배열 객체로 리턴합니다.
	      String contents[] = dirFile.list();
	      for(int i = 0; i < contents.length; i++){
	        // 하위 디렉토리의 Depth 만큼 들여쓰기가 되도록 합니다.
	         for(int spaces = 0; spaces < depth; spaces++)
	            System.out.print("  ");
	         System.out.println(contents[i]);
	         // 현재 디렉토리와 파일 정보를 가지고 File 객체를 생성합니다.
	         File child = new File(dirFile, contents[i]);
	         // 현재 디렉토리의 파일이 하위 디렉토리인 경우에만 resurse() 메서드를 재귀 호출합니다.
	         if(child.isDirectory())
	            recurse(child, depth+1);
	      }
	   }
}
